// 格式化日期时间的函数
function formatDateTime(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');

  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}

Page({
  data: {
    filters: {},  // 存储从前一个页面传递的筛选条件
    consultants: [],  // 存储返回的咨询师列表
    startTime: "",  // 存储上一个页面传递的开始时间
  },

  // 页面加载时获取筛选条件并请求数据
  onLoad: function(options) {
    try {
      // 获取并解析传递的筛选条件
      const filtersString = options.filters;  // 获取查询参数
      if (filtersString) {
        const filters = JSON.parse(decodeURIComponent(filtersString));
        console.log("接收到的筛选条件 filters: ", filters);

        // 将解析后的筛选条件保存到页面的 data 中
        this.setData({
          filters: filters,
          startTime: filters.date  // 假设 startTime 是传递的时间字段（如果是其他字段，做相应调整）
        });

        // 调用接口获取筛选后的咨询师数据
        this.getConsultants(filters);
      } else {
        console.error("未接收到有效的筛选条件");
        wx.showToast({
          title: '未接收到筛选条件',
          icon: 'none'
        });
      }
    } catch (e) {
      console.error("JSON 解析错误: ", e);
      wx.showToast({
        title: '筛选条件解析失败',
        icon: 'none'
      });
    }
  },


  yuyue: function(e) {
    const consultantId = e.currentTarget.dataset.consultantid;
    const memberId = wx.getStorageSync('vipuser').memberId;
    const startTime = this.data.startTime;  
    const startDate = new Date(startTime); 
    const endTime = new Date(startDate.getTime() + (17) * 60 * 60 * 1000);  


    const startTimeFormatted = formatDateTime(startDate);
    const endTimeFormatted = formatDateTime(endTime);

    const consultationContent = this.data.filters.text; 
    const completionStatus = "未完成";  // 默认状态


    const appointmentData = {
      consultantId: consultantId,  
      memberId: memberId,          
      startTime: startTimeFormatted,      
      endTime: endTimeFormatted,            
      consultationContent: consultationContent,  
      completionStatus: completionStatus      
    };

    // 调用添加预约接口
    this.addAppointment(appointmentData);
    console.log("请求的预约数据：", appointmentData);
  },

  // 调用接口添加预约
  addAppointment: function(appointmentData) {
    const url = 'http://127.0.0.1:9090/consultationAppointments'; // 后端接口 URL
    console.log("请求的 URL: ", url);  // 输出接口的 URL
    console.log("请求的数据: ", appointmentData);  // 输出请求的数据

    wx.request({
      url: url,
      method: 'POST',
      header: {
        'Content-Type': 'application/json'
      },
      data: appointmentData,
      success: (res) => {
        if (res.data && res.data.code === 200) {
          wx.showToast({
            title: '预约成功',
            icon: 'success'
          });

          // 弹出预约成功的提示
          wx.showModal({
            title: '预约成功',
            content: '您的预约已经成功，我们将在指定时间内与您联系。',
            showCancel: false,  
            confirmText: '确定',
            success: () => {

              wx.switchTab({
                url: '/pages/home/home',  
              });
            }
          });
        } else {
          wx.showToast({
            title: '预约失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('请求失败: ', err);
        wx.showToast({
          title: '请求失败，请稍后再试',
          icon: 'none'
        });
      }
    });
  },

  // 根据筛选条件调用接口获取咨询师列表
  getConsultants: function(filters) {
    let queryParams = [];


    if (filters.leiBie) {
      queryParams.push(`fields=${filters.leiBie}`);
    }
    if (filters.dengjiId) {
      queryParams.push(`level=${filters.dengjiId}`);
    }

    // 构建请求的 URL
    const url = `http://127.0.0.1:9090/filter/filter?${queryParams.join('&')}`;

    // 输出生成的 URL，便于调试
    console.log("请求的 URL: ", url);

    // 请求数据
    wx.request({
      url: url,
      method: 'GET',
      success: (res) => {
        if (res.data && Array.isArray(res.data)) {
          this.setData({
            consultants: res.data
          });
          console.log("筛选后的咨询师列表：", res.data);
        } else {
          wx.showToast({
            title: '没有符合条件的咨询师',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('获取咨询师数据失败: ', err);
        wx.showToast({
          title: '请求失败，请稍后再试',
          icon: 'none'
        });
      }
    });
  }
});
